﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using acessaDB;
using System.Data;
using System.Configuration;
using Banco;

namespace Negocio
{

    public class NG_Equipamento
    {
        #region variaveis_globais

        acessaDB.conectaDBFireBird fireBird = new conectaDBFireBird();
        string conectionString = System.Configuration.ConfigurationManager.AppSettings["FireBirdConnectionLocal"];
        string usuario = string.Empty;

        #endregion

        #region construtor

        public NG_Equipamento()
        {
            if (System.Configuration.ConfigurationManager.AppSettings["ambiente"] == "PROD")
                conectionString = System.Configuration.ConfigurationManager.AppSettings["FireBirdConnectionProd"];
        }
        public NG_Equipamento(string usu_Login)
        {
            if (System.Configuration.ConfigurationManager.AppSettings["ambiente"] == "PROD")
                conectionString = System.Configuration.ConfigurationManager.AppSettings["FireBirdConnectionProd"];
            usuario = usu_Login;
        }

        #endregion

        #region metodos


        public bool transefereEquipamento(string p_equipamento_id, 
            string p_equipamento_pai_id, 
            string p_data_remocao, 
            string p_data_instalcao,
            string p_cve_obs)
        {
            bool result = true;
            try
            {
                
                /*1 Criar enveto de REMOCAO no PAI ANTERIOR
                  2 Alter o PAI do EQUIPAMENTO
                  3 Criar evento de INSTALACAO no NOVO PAI
                 */

                //1
                BD_Evento EVENTO = new BD_Evento();
                EVENTO._sp_ctm_evento_inserir("0",
                                             p_equipamento_id,
                                             "3",
                                             null,
                                             null,
                                             p_data_remocao,
                                             null,
                                             null,
                                             "A",
                                             null,
                                             p_cve_obs,
                                             "5", //causa = CONVENIENCIA
                                             null,
                                             null);
                
                //2
                BD_Equipamento EQU = new BD_Equipamento();
                EQU._alterar_Equipamento_Pai_Id(p_equipamento_id, p_equipamento_pai_id);

                //3
                EVENTO._sp_ctm_evento_inserir("0",
                                                p_equipamento_id,
                                                "2",
                                                null,
                                                null,
                                                p_data_instalcao,
                                                "S",
                                                "A",
                                                "A",
                                                null,
                                                p_cve_obs,
                                                "5", //causa = CONVENIENCIA
                                                null,
                                                null);


            }
            catch 
            {
                result = false;
            }
            return result;
        }

        //remover equipamento
        public bool removeEquipamento(string p_equipamento_id,
                                      string p_equipamento_pai_id,
                                      string p_data_remocao,
                                      string p_cve_obs,
                                      string p_cve_evento_causa_id)
        {
            bool result = true;
            try
            {

                /*1 Criar enveto de REMOCAO no PAI ANTERIOR
                  2 Alter o PAI do EQUIPAMENTO                  
                 */

                //1
                BD_Evento EVENTO = new BD_Evento();
                EVENTO._sp_ctm_evento_inserir("0",
                                             p_equipamento_id,
                                             "3",
                                             null,
                                             null,
                                             p_data_remocao,
                                             null,
                                             null,
                                             "A",
                                             null,
                                             p_cve_obs,
                                             p_cve_evento_causa_id,
                                             null,
                                             null);

                //2
                BD_Equipamento EQU = new BD_Equipamento();
                EQU._alterar_Equipamento_Pai_Id(p_equipamento_id, p_equipamento_pai_id);
                


            }
            catch
            {
                result = false;
            }
            return result;
        }

        //lançar evento de cumprimento de serviço
        public bool equipamentoServico(string p_equipamento_id,
                                       string p_equipamento_pai_id,
                                       string p_data_cumprimento,
                                       string p_cve_obs,
                                       string p_cve_evento_causa_id,                                       
                                       string p_ctm_cad_inspecao_id,
                                       string p_ctm_cad_diretiva_id
            
            )
        {
            bool result = true;
            try
            {

                /*
                 * tratar parametros
                 */

                try
                { int diretiva_id = Convert.ToInt32(p_ctm_cad_diretiva_id); }
                catch
                {p_ctm_cad_diretiva_id = null;}

                try
                { int inspecao_id = Convert.ToInt32(p_ctm_cad_diretiva_id); }
                catch
                { p_ctm_cad_inspecao_id = null; }
                
                BD_Evento EVENTO = new BD_Evento();
                EVENTO._sp_ctm_evento_inserir("0",
                                             p_equipamento_id,
                                             "6", //CUMPRIMENTO DE SERVIÇO
                                             p_ctm_cad_inspecao_id,
                                             p_ctm_cad_diretiva_id,                                                                                          
                                             p_data_cumprimento,                                             
                                             null,
                                             null,
                                             "A",
                                             null,
                                             p_cve_obs,
                                             p_cve_evento_causa_id,
                                             null,
                                             null);            
            }
            catch
            {
                result = false;
            }
            return result;
        }

        //alteração de item Pai
        public bool alterarEquipamentoPai(string p_equipamento_id,
                                          string p_equipamento_pai_id,
                                          string p_cve_obs)
        {
            bool result = true;
            try
            {

                /*
                  1 Alter o PAI do EQUIPAMENTO
                  2 Criar evento de ALTERAÇÃO de EQUIPAMENTO PAI
                 */

                
               
                //1
                BD_Equipamento EQU = new BD_Equipamento();
                EQU._alterar_Equipamento_Pai_Id(p_equipamento_id, p_equipamento_pai_id);

                //2
                BD_Evento EVENTO = new BD_Evento();
                EVENTO._sp_ctm_evento_inserir("0",
                                              p_equipamento_id,
                                              "4",//ALTERAÇÃO DE ITEM PAI
                                              null,
                                              null,
                                              System.DateTime.Now.ToString(),
                                              null,
                                              null,
                                              "A",
                                              null,
                                              p_cve_obs,
                                              "5", //causa = CONVENIENCIA,
                                              null,
                                              null);


            }
            catch
            {
                result = false;
            }
            return result;
        }

        #endregion
    }
}
